Ever-increasing quantities of data are stressing the storage and processing capabilities of data centers. System architects are increasingly deploying NoSQL databases to provide scalability for storage and processing. NoSQL databases differ from Structured Query Language (SQL) databases, which are generally relational databases that model data in a tabular format. NoSQL databases model data in a manner other than the tabular manner of relational databases. In some instances “No” in NoSQL refers to “non”-SQL databases, and in other instances “No” refers to “not only” SQL databases.
NoSQL databases use data structures such as a key-value, wide column, graph, or a document to organize data, making some operations faster in NoSQL than in relational databases. NoSQL databases offer advantages of reduced latency and increased throughput as compared to traditional relational databases. NoSQL databases that implement collections, documents and nested documents provide queries such as reductions and aggregations, which are more sophisticated than basic key-value database operations of get, set, delete, compare-and-swap, etc. Documents in NoSQL databases are often encoded in XML, YAML, and JSON as well as binary forms like BSON.
Though NoSQL databases offer advantages over relational databases, as databases grow in size, additional processor resources may be required to maintain a desired level of performance. With increases in storage and processor resources, power consumption will also grow.